﻿CREATE OR REPLACE VIEW HOTEL.V_LISTAR_HOTEL
AS
SELECT ID_HOTEL AS ID,NOM_HOTEL AS NOMBRE,DIR_HOTEL AS DIRECCION FROM HOTEL.TB_HOTEL;

create or replace view hotel.v_listar_pisos_hotel
as
select id_pisohotel,nombre_piso,nro_piso,nro_habitaciones,id_estado,id_hotel from hotel.tb_pisos_hotel;



create or replace view ALMACEN.v_listar_lista_precios
as
select id_lista,nom_lista,des_lista,has_lista,id_estado from ALMACEN.tb_lista_precio;

create or replace view common.v_listar_moneda
as
select id_moneda,des_moneda,abre_moneda,id_estado from common.tb_moneda;



create or replace view hotel.v_listar_habitacion
as
SELECT 
  hotel.tb_tipohabitacion.des_tipohabitacion as tipo_habitacion,
  hotel.tb_habitacion.num_habitacion,
  hotel.tb_habitacion.capacidad as num_camas,
  hotel.tb_pisos_hotel.nombre_piso as piso,
  common.tb_moneda.abre_moneda as moneda,
  almacen.tb_lista_precio.nom_lista as lista,
  COALESCE(hotel.tb_tarifa_hotel.precio1,0.00) as precio1,
  COALESCE(hotel.tb_tarifa_hotel.precio2,0.00) as precio2,
  COALESCE(hotel.tb_tarifa_hotel.precio3,0.00) as precio3,
  COALESCE(hotel.tb_tarifa_hotel.precio4,0.00) as precio4,
  COALESCE(hotel.tb_tarifa_hotel.precio5,0.00) as precio5,
  hotel.tb_habitacion.id_habitacion,
  hotel.tb_habitacion.id_pisohotel,
  hotel.tb_habitacion.id_estado,
  hotel.tb_pisos_hotel.id_hotel ,
  hotel.tb_tarifa_hotel.id_tarifa,
  almacen.tb_lista_precio.id_lista,
  common.tb_moneda.id_moneda ,
  tb_habitacion.id_tipohabitacion,
  tb_tarifa_hotel.id_estado as estado_tarifa,
  e.des_estado as des_estado_tarifa
FROM
  hotel.tb_habitacion
  INNER JOIN hotel.tb_tipohabitacion ON (hotel.tb_habitacion.id_tipohabitacion = hotel.tb_tipohabitacion.id_tipohabitacion)
  INNER JOIN hotel.tb_pisos_hotel ON (hotel.tb_habitacion.id_pisohotel = hotel.tb_pisos_hotel.id_pisohotel)
  inner JOIN hotel.tb_tarifa_hotel ON (hotel.tb_habitacion.id_habitacion = hotel.tb_tarifa_hotel.id_habitacion)
  --and tb_tarifa_hotel.id_estado=1
  inner JOIN common.tb_moneda ON (hotel.tb_tarifa_hotel.id_moneda = common.tb_moneda.id_moneda)
  inner JOIN almacen.tb_lista_precio ON (hotel.tb_tarifa_hotel.id_lista_hotel = almacen.tb_lista_precio.id_lista)
  inner join common.tb_estado e on (e.id_estado=tb_tarifa_hotel.id_estado)
  order by tb_habitacion.num_habitacion,tb_habitacion.id_pisohotel;



CREATE OR REPLACE VIEW HOTEL.VLISTAR_TARIFAS
  AS
  select 
  tbl.nom_lista as lista,
  m.abre_moneda as moneda,
  tth.precio1,
  tth.precio2,
  tth.precio3,
  tth.precio4,
  tth.precio5 ,
  tth.id_tarifa,
  tth.id_habitacion,
  tth.id_lista_hotel,
  tth.id_estado
  from   hotel.tb_tarifa_hotel tth
  INNER JOIN common.tb_moneda m ON (tth.id_moneda = m.id_moneda)
  INNER JOIN almacen.tb_lista_precio tbl ON (tth.id_lista_hotel = tbl.id_lista);


create or replace view almacen.v_listar_grupo
as
select 
tg.idgrupo,
tg.nombre,
tg.id_estado ,
te.des_estado as estado
from almacen.tb_grupo tg
inner join common.tb_estado te on (te.id_estado=tg.id_estado)
ORDER BY tg.idgrupo::NUMERIC;


create or replace view almacen.vlistar_familias
as
 select 
 tf.idfamilia,
 tf.nombre as familia,
 tg.nombre as grupo,
 te.des_estado,
 tg.idgrupo,
 te.id_estado 
 from almacen.tb_grupo tg
 inner join almacen.tb_familia tf on (tg.idgrupo=tf.idgrupo)
 inner join common.tb_estado te on (te.id_estado=tf.idestado);

select *from almacen.tb_familia

update almacen.tb_familia set idestado=1

CREATE OR REPLACE VIEW COMMON.V_LISTAR_UNIMED
AS
SELECT 
TU.ID_UNIDAD,
TU.DES_UNIDAD AS UNIDAD,
TU.ABREVIATURA,
TU.VAL_VENTA,
TU.VAL_MINIMO,
TU.VENTA_CON_FRACCION AS FRACCION,
TE.DES_ESTADO AS ESTADO,
TU.ID_ESTADO 
FROM COMMON.TB_UNIDAD TU
INNER JOIN COMMON.TB_ESTADO TE ON(TE.ID_ESTADO=TU.ID_ESTADO)
ORDER BY ID_UNIDAD;


create or replace view almacen.v_listar_producto
as
select p.id_producto,
p.descripcion_larga as producto,
f.nombre as familia,
0 as stock,'99999'::text as nro_orden,
'--/--/----'::text as fec_llegada,
(case when p.prod_serv='N' then 'PRODUCTO' else 'SERVICIO' end) AS tipo,
e.des_estado::TEXT as estado,
p.cod_bar,
p.inc_serie,
p.prod_serv,
p.impuesto,
p.controla_stock,
p.id_estado
 from almacen.tb_producto p
inner join almacen.tb_familia f on (f.idfamilia=p.idfamilia)
INNER JOIN COMMON.TB_ESTADO E ON(E.ID_ESTADO=P.ID_ESTADO) ;

select *from almacen.tb_producto
select * from almacen.vlistar_familias  where familia ilike '%%'
--ALTER TABLE ALMACEN.TB_PRECIO ADD COLUMN ID_ESTADO INTEGER;


CREATE OR REPLACE VIEW ALMACEN.V_LISTAR_PRECIOS
AS
SELECT LP.NOM_LISTA AS LISTA,
U.DES_UNIDAD ,
U.ABREVIATURA,
P.PRECIO1,
P.PRECIO2,
P.PRECIO3,
P.PRECIO4,
P.PRECIO5 ,
P.PREDETERMINADO,
P.VAL_UNIDAD,
P.VAL_MINIMO,
P.PESO,
E.DES_ESTADO AS ESTADO,
P.ID_PRODUCTO,
p.id_precios,
p.id_lista,
p.id_unidad,
p.costo_almacen
FROM ALMACEN.TB_PRECIO P
INNER JOIN COMMON.TB_UNIDAD U ON (U.ID_UNIDAD=P.ID_UNIDAD)
INNER JOIN ALMACEN.TB_LISTA_PRECIO LP ON(LP.ID_LISTA=P.ID_LISTA)
INNER JOIN COMMON.TB_ESTADO E ON(E.ID_ESTADO=P.ID_ESTADO) ;

select *from  ALMACEN.TB_PRECIO P
---listadoGeneralProducto

create or replace view almacen.v_listadoGeneralProducto
as
select 
p.id_producto ,
p.minicodigo ,
p.cod_bar,
p.descripcion,
p.descripcion_larga,
p.inc_serie,
p.prod_serv,
p.inc_barra,
p.impuesto,
p.reintegro_tributario,
p.partida_Arancelaria,
p.ubica_almacen,
p.pide_objetivos,
p.obs_compra,
p.obs_ventas,
p.controla_stock,
p.perecible,
p.suje_peresepcion,
p.vende_pack,
g.nombre as grupo,
g.idgrupo,
f.nombre as familia,
f.idfamilia,
e.des_estado as estado,
e.id_estado
from 
almacen.tb_grupo g
inner join almacen.tb_familia f on (g.idgrupo=f.idgrupo)
inner join almacen.tb_producto p on (f.idfamilia=p.idfamilia)
inner join common.tb_estado e on (e.id_estado=p.id_estado);



--ListaGeneralPrecios

create or replace view almacen.v_listageneralprecios
as
select 
p.id_producto,
p.id_unidad,
p.id_lista,
p.id_precios ,
p.importe_costo,
p.imp_flete,
p.imp_embalaje,
p.imp_otros_costos,
p.peso,
p.costo_promedio,
p.costo_unitario,
p.costo_igv,
p.costo_almacen,
p.predeterminado,
p.porcent_util1,
p.porcent_util2,
p.porcent_util3,
p.porcent_util4,
p.porcent_util5,
p.precio1,
p.precio2,
p.precio3,
p.precio4,
p.precio5,
p.porcent_dsct,
p.val_unidad,
p.val_minimo,
m.id_moneda,
m.abre_moneda,
u.abreviatura as unidad,
lp.nom_lista as lista,
e.id_estado
from almacen.tb_lista_precio lp
inner join almacen.tb_precio p on (lp.id_lista=p.id_lista)
inner join common.tb_unidad u on (u.id_unidad=p.id_unidad)
inner join common.tb_moneda m on (m.id_moneda=p.id_moneda)
inner join common.tb_estado e on (e.id_estado=p.id_estado);



CREATE OR REPLACE VIEW COMMON.V_LISTAR_EMPRESA
AS
SELECT id_empresa,rs_empresa,dir_empresa FROM COMMON.TB_EMPRESA;

create or replace view hotel.v_listar_sucursal
as
SELECT id_hotel,nom_hotel,dir_hotel,id_empresa,id_estado FROM hotel.tb_hotel;


create or replace view almacen.v_listar_almacen
as
select a.id_almacen,
a.des_almacen,
a.direccion ,
e.des_estado as estado,
a.id_estado,
ep.id_empresa,
a.id_hotel,
a.ubigeo,
a.id_responsable,
(u.nom_depa || '-' || u.nom_prov || '-' || u.nom_dist) as nom_ubigeo,
a.is_principal
from almacen.tb_almacen a
inner join common.tb_estado e on (e.id_estado=a.id_estado)
inner join hotel.tb_hotel h on (h.id_hotel=a.id_hotel)
inner join common.tb_empresa ep on (ep.id_empresa=h.id_empresa)
inner join common.tb_ubigeo u on (u.ubigeo=a.ubigeo)
left join planillas.tb_persona p on (p.id_persona=a.id_responsable)


create or replace view caja.v_listar_tipcaja
as
select id_tipcaja,nombre from caja.tb_tipocaja

create or replace view caja.v_listar_cajas
as
select 
cb.id_caja,
cb.nombre,
cb.nro_cuenta,
h.nom_hotel as sucursal,
cb.venta_credito,
cb.venta_contado,
cb.pago_proveed,
cb.cobranzas,
m.abre_moneda as moneda,
cb.id_tipcaja,
cb.id_moneda,
cb.id_sucursal,
e.id_empresa,
es.des_estado as estado,
es.id_estado,
cb.caja_banco
from caja.tb_caja_banco cb
inner join hotel.tb_hotel h on(h.id_hotel=cb.id_sucursal)
inner join common.tb_empresa e on(e.id_empresa=h.id_empresa)
inner join common.tb_moneda m on(m.id_moneda=cb.id_moneda)
inner join common.tb_estado es on(es.id_estado=cb.id_estado)


SELECT *FROM ALMACEN.V_LISTAR_STOK_ALMACEN

CREATE OR REPLACE VIEW ALMACEN.V_LISTAR_STOK_ALMACEN
as
 SELECT tb_producto.id_producto, tb_saldo.anio, tb_saldo.mes, 
    tb_almacen.des_almacen, tb_producto.descripcion_larga, 
    sum(tb_saldo.saldo * tb_precio.val_unidad) AS saldos, 
    tb_saldo.costo_promedio, tb_saldo.id_almacen
   FROM almacen.tb_saldo
   JOIN almacen.tb_almacen ON tb_almacen.id_almacen = tb_saldo.id_almacen
   JOIN almacen.tb_producto ON tb_producto.id_producto::text = tb_saldo.id_producto::text
   JOIN almacen.tb_precio ON tb_precio.id_producto::text = tb_saldo.id_producto::text AND tb_precio.id_unidad = tb_saldo.id_unidad
  WHERE tb_saldo.anio::double precision = date_part('year'::text, now()) AND tb_saldo.id_estado = 1
  GROUP BY tb_producto.id_producto, tb_saldo.anio, tb_saldo.mes, tb_almacen.des_almacen, tb_producto.descripcion_larga, tb_saldo.costo_promedio, tb_saldo.id_almacen
  ORDER BY tb_producto.id_producto

select *from ALMACEN.V_LISTAR_STOK_ALMACEN

CREATE OR REPLACE VIEW common.v_listar_formpago 
AS 
 SELECT tb_formapago.id_formapago, tb_formapago.des_formapago, 
    tb_formapago.genera_cuotas, tb_formapago.modifica, 
    tb_estado.des_estado AS estado, 
    tb_formapago.id_estado,
    tb_formapago.op_caja
   FROM common.tb_formapago
   JOIN common.tb_estado ON tb_estado.id_estado = tb_formapago.id_estado;


create or replace view planillas.v_listar_personal_empresa
as
SELECT p.id_persona,p.doc_persona,p.fullname_persona,TB_AREAS.des_area FROM 
PLANILLAS.TB_PERSONA P
INNER JOIN planillas.tb_direccionpersona DP ON (P.ID_PERSONA=DP.ID_PERSONA AND DP.IS_PRINCIPAL=1)
INNER JOIN PLANILLAS.TB_AREAS ON(TB_AREAS.ID_AREA=P.ID_AREA)


create or replace view common.v_listar_tb_operacion
as
select id_operacion,descripcion,estado from common.tb_operacion



create or replace view creditos.v_listar_tasa_credito
as
select id_prodcredito ,taza1 from creditos.tb_prodcredito order by id_prodcredito

create or replace view common.v_listar_series_docs
as
SELECT th.nom_hotel,
	ts.id_tranzaccion, 
	td.abre_documento as tip_documento,      
	ts.serie, 
	ts.numero as correlativo, 
	(ts. desde || '-' ||  ts.hasta) as rango, 
	ts.impresora, 
	te.des_estado as estado,
	ts.plantilla, 
	ts. desde, 
        ts.hasta, 
	ts.id_documento, 
        ts.serie_impresora, 
        ts.id_sucursal, 
        ts.id_estado,
        ts.id_terminal,
        th.id_empresa
  FROM common.tb_series_comprobante ts
  inner join common.tb_tranzaccion tz on (tz.id_tranzaccion=ts.id_tranzaccion)
  inner join hotel.tb_hotel th on (th.id_hotel=ts.id_sucursal)
  inner join common.tb_documento td on (td.id_documento=ts.id_documento)
  inner join common.tb_estado te on (te.id_Estado=ts.id_estado)
  

CREATE OR REPLACE VIEW VENTAS.V_LISTAR_CAB_FACTURACION
  AS
SELECT 
(tb_documento.abre_documento || '/' || tb_facturacion.serie_facturacion  ||'-'|| tb_facturacion.numdoc_facturacion) as documento,
(COALESCE(tb_persona.rs_persona,'') ) as cliente,
tb_persona.doc_persona as doc_cliente,
(tb_direccionpersona.dir_direccionpersona || '-' || tb_ubigeo.nom_depa || ' ' || tb_ubigeo.nom_prov || ' ' || tb_ubigeo.nom_dist) as direccion,
tb_facturacion.fecha_facturacion,
(vendedor.ape_persona || ',' || vendedor.nom_persona) as vendedor,
tb_facturacion.imp_igv,
tb_facturacion.imp_venta,
tb_facturacion.imp_dscto,
tb_facturacion.imp_total,
fu_numero_letras(tb_facturacion.imp_total) as total_letras,
CONDICION_VENTA.DES_FORMAPAGO AS CONDICION_VENTA

FROM
  ventas.tb_facturacion
  INNER JOIN planillas.tb_persona vendedor ON (ventas.tb_facturacion.id_vendedor = vendedor.id_persona)
  INNER JOIN planillas.tb_direccionpersona ON (ventas.tb_facturacion.id_dir_cliente = planillas.tb_direccionpersona.idir_personal)
  AND (ventas.tb_facturacion.id_cliente = planillas.tb_direccionpersona.id_persona)
  INNER JOIN planillas.tb_persona ON (planillas.tb_direccionpersona.id_persona = planillas.tb_persona.id_persona)
  INNER JOIN common.tb_formapago ON (ventas.tb_facturacion.id_formapago = common.tb_formapago.id_formapago)
  INNER JOIN common.tb_formapago CONDICION_VENTA ON (CONDICION_VENTA.id_formapago = ventas.tb_facturacion.ID_CONDICION_VENTA)
  INNER JOIN common.tb_documento ON (tb_facturacion.id_documento = common.tb_documento.id_documento)
  INNER JOIN COMMON.TB_UBIGEO ON (TB_UBIGEO.UBIGEO=tb_direccionpersona.UBIGEO)



SELECT *FROM VENTAS.TB_FACTURACION
SELECT *FROM COMMON.TB_DOCUMENTO
SELECT *FROM COMMON.TB_MONEDA

 CREATE OR REPLACE VIEW creditos_listar_movimientos_cuota AS 
 SELECT ctx.idcuenta_xcobrar, m.monto_total
   FROM creditos.ctas_xcobrar ctx
   JOIN creditos.cuota c ON ctx.idcuenta_xcobrar = c.idcuenta_xcobrar
   JOIN operaciones.movimiento m ON c.idcuota = m.idcuota
  WHERE c.nrocuota <>0 and (m.anulado='0' or m.anulado='N');

SELECT *FROM CAJA.TB_MOVIMIENTO

 SELECT M.IMP_MOVIMIENTO,substr(CC.NRO_LETRA,3,length(CC.NRO_LETRA))::NUMERIC,CC.ID_CUOTA,CC.NRO_LETRA FROM CREDITOS.TB_CUOTA CC 
                  INNER JOIN CAJA.TB_MOVIMIENTO M ON (CC.ID_CUOTA=M.ID_CUOTA AND CC.ID_CREDITO=M.ID_CREDITO AND CC.id_sucursal_credito=M.id_sucursal_credito)
                  WHERE C.ID_CREDITO=M.ID_CREDITO AND C.id_sucursal_credito=M.id_sucursal_credito  AND substr(CC.NRO_LETRA,3,length(CC.NRO_LETRA))::NUMERIC <>0


select *from hotel.tb_hotel

CREATE OR REPLACE VIEW creditos.v_listar_ctas_xcobrar
AS
SELECT (D.ABRE_DOCUMENTO || '/' ||TB_FACTURACION.SERIE_FACTURACION || '-' || TB_FACTURACION.NUMDOC_FACTURACION) AS DOCUMENTO,
C.FEC_EMISION ,
( SELECT CC.fec_vencimiento
                   FROM CREDITOS.TB_CUOTA CC
                  WHERE CC.id_credito=C.id_credito  AND CC.id_sucursal_credito=C.id_sucursal_credito
                  ORDER BY substr(CC.NRO_LETRA,3,length(CC.NRO_LETRA))  DESC
                 LIMIT 1) AS fec_vencimiento,
                 M.ABRE_MONEDA AS MONEDA,
                 ( SELECT SUM(CC.IMP_CUOTA)
                   FROM CREDITOS.TB_CUOTA CC
                  WHERE CC.id_credito=C.id_credito  AND CC.id_sucursal_credito=C.id_sucursal_credito
                  AND substr(CC.NRO_LETRA,3,length(CC.NRO_LETRA))::NUMERIC <>0 ) AS CREDITO,
                  COALESCE((SELECT SUM(M.IMP_MOVIMIENTO) FROM CREDITOS.TB_CUOTA CC 
                  INNER JOIN CAJA.TB_MOVIMIENTO M ON (CC.ID_CUOTA=M.ID_CUOTA AND CC.ID_CREDITO=M.ID_CREDITO AND CC.id_sucursal_credito=M.id_sucursal_credito)
                  WHERE C.ID_CREDITO=M.ID_CREDITO AND C.id_sucursal_credito=M.id_sucursal_credito  AND substr(CC.NRO_LETRA,3,length(CC.NRO_LETRA))::NUMERIC <>0),0) AS PAGOS,
                  ( COALESCE(( SELECT SUM(CC.IMP_CUOTA)
                   FROM CREDITOS.TB_CUOTA CC
                  WHERE CC.id_credito=C.id_credito  AND CC.id_sucursal_credito=C.id_sucursal_credito
                  AND substr(CC.NRO_LETRA,3,length(CC.NRO_LETRA))::NUMERIC <>0 ),0) -
                  COALESCE( (SELECT SUM(M.IMP_MOVIMIENTO) FROM CREDITOS.TB_CUOTA CC 
                  INNER JOIN CAJA.TB_MOVIMIENTO M ON (CC.ID_CUOTA=M.ID_CUOTA AND CC.ID_CREDITO=M.ID_CREDITO AND CC.id_sucursal_credito=M.id_sucursal_credito)
                  WHERE C.ID_CREDITO=M.ID_CREDITO AND C.id_sucursal_credito=M.id_sucursal_credito  AND substr(CC.NRO_LETRA,3,length(CC.NRO_LETRA))::NUMERIC <>0),0)) AS SALDO,
                   ( SELECT SUM(CC.IMP_CUOTA)
                   FROM CREDITOS.TB_CUOTA CC
                  WHERE CC.id_credito=C.id_credito  AND CC.id_sucursal_credito=C.id_sucursal_credito ) AS TOTA_FAC,
                  c.id_credito, 
                  c.id_sucursal_credito,
                  tb_persona.rs_persona AS CLIENTE,
                   (c.id_credito::text || ''::text) || c.id_sucursal_credito AS id_cabcredito, 
            (c.id_credito::text || ''::text) || c.id_sucursal_credito AS id_cabcredito_del,
            dp.id_persona as id_cliente,
            dp.idir_personal as id_dricliente,
            tb_persona.doc_persona,
            dp.dir_direccionpersona as dir_cliente,
            c.id_anticipo,
            false as selec,
            VENDEDOR.FULLNAME_PERSONA AS vendedor,
            tb_hotel.nom_hotel as sucursal,
            dp.ref_direccionpersona as ref_direccion,
            ''::text as producto
FROM
  ventas.tb_facturacion
  INNER JOIN creditos.tb_fac_credito ON (ventas.tb_facturacion.numdoc_facturacion = creditos.tb_fac_credito.numdoc_facturacion)
  AND (ventas.tb_facturacion.fecha_facturacion = creditos.tb_fac_credito.fecha_facturacion)
  AND (ventas.tb_facturacion.serie_facturacion = creditos.tb_fac_credito.serie_facturacion)
  AND (ventas.tb_facturacion.id_sucursal = creditos.tb_fac_credito.id_sucursal)
  AND (ventas.tb_facturacion.id_dir_cliente = creditos.tb_fac_credito.id_dir_cliente)
  AND (ventas.tb_facturacion.id_cliente = creditos.tb_fac_credito.id_cliente)
  AND (ventas.tb_facturacion.id_documento = creditos.tb_fac_credito.id_documento)
  INNER JOIN creditos.tb_credito  c ON (creditos.tb_fac_credito.id_credito = c.id_credito)
  AND (creditos.tb_fac_credito.id_sucursal_credito = c.id_sucursal_credito)
  INNER JOIN COMMON.TB_MONEDA M ON (M.ID_MONEDA=TB_FACTURACION.ID_MONEDA)
  INNER JOIN COMMON.TB_DOCUMENTO D ON (D.ID_DOCUMENTO=TB_FACTURACION.ID_DOCUMENTO)
  INNER JOIN PLANILLAS.tb_direccionpersona DP ON (DP.idir_personal=TB_FACTURACION.ID_DIR_CLIENTE AND DP.ID_PERSONA=tb_facturacion.ID_CLIENTE)
  INNER JOIN PLANILLAS.tb_persona ON (tb_persona.ID_PERSONA=DP.ID_PERSONA)
  INNER JOIN PLANILLAS.TB_PERSONA VENDEDOR ON (VENDEDOR.ID_PERSONA=TB_FACTURACION.ID_VENDEDOR)
  INNER JOIN HOTEL.TB_HOTEL ON (TB_HOTEL.ID_HOTEL=TB_FACTURACION.ID_SUCURSAL)
   UNION
SELECT 'ANTICIPO' AS DOCUMENTO,
C.FEC_EMISION ,
( SELECT CC.fec_vencimiento
                   FROM CREDITOS.TB_CUOTA CC
                  WHERE CC.id_credito=C.id_credito  AND CC.id_sucursal_credito=C.id_sucursal_credito
                  ORDER BY substr(CC.NRO_LETRA,3,length(CC.NRO_LETRA))  DESC
                 LIMIT 1) AS fec_vencimiento,
                 M.ABRE_MONEDA AS MONEDA,
                 ( SELECT SUM(CC.IMP_CUOTA)
                   FROM CREDITOS.TB_CUOTA CC
                  WHERE CC.id_credito=C.id_credito  AND CC.id_sucursal_credito=C.id_sucursal_credito
                  AND substr(CC.NRO_LETRA,3,length(CC.NRO_LETRA))::NUMERIC =0 ) AS CREDITO,
                  COALESCE((SELECT SUM(M.IMP_MOVIMIENTO) FROM CREDITOS.TB_CUOTA CC 
                  INNER JOIN CAJA.TB_MOVIMIENTO M ON (CC.ID_CUOTA=M.ID_CUOTA AND CC.ID_CREDITO=M.ID_CREDITO AND CC.id_sucursal_credito=M.id_sucursal_credito)
                  WHERE C.ID_CREDITO=M.ID_CREDITO AND C.id_sucursal_credito=M.id_sucursal_credito  AND substr(CC.NRO_LETRA,3,length(CC.NRO_LETRA))::NUMERIC =0),0) AS PAGOS,
                  ( COALESCE(( SELECT SUM(CC.IMP_CUOTA)
                   FROM CREDITOS.TB_CUOTA CC
                  WHERE CC.id_credito=C.id_credito  AND CC.id_sucursal_credito=C.id_sucursal_credito
                  AND substr(CC.NRO_LETRA,3,length(CC.NRO_LETRA))::NUMERIC =0 ),0) -
                  COALESCE( (SELECT SUM(M.IMP_MOVIMIENTO) FROM CREDITOS.TB_CUOTA CC 
                  INNER JOIN CAJA.TB_MOVIMIENTO M ON (CC.ID_CUOTA=M.ID_CUOTA AND CC.ID_CREDITO=M.ID_CREDITO AND CC.id_sucursal_credito=M.id_sucursal_credito)
                  WHERE C.ID_CREDITO=M.ID_CREDITO AND C.id_sucursal_credito=M.id_sucursal_credito  AND substr(CC.NRO_LETRA,3,length(CC.NRO_LETRA))::NUMERIC =0),0)) AS SALDO,
                   ( SELECT SUM(CC.IMP_CUOTA)
                   FROM CREDITOS.TB_CUOTA CC
                  WHERE CC.id_credito=C.id_credito  AND CC.id_sucursal_credito=C.id_sucursal_credito ) AS TOTA_FAC,
                  c.id_credito, 
                  c.id_sucursal_credito,
                  tb_persona.rs_persona AS CLIENTE,
                  (c.id_credito::text || ''::text) || c.id_sucursal_credito AS id_cabcredito, 
            (c.id_credito::text || ''::text) || c.id_sucursal_credito AS id_cabcredito_del,
             dp.id_persona as id_cliente,
            dp.idir_personal as id_dricliente,
             tb_persona.doc_persona,
             dp.dir_direccionpersona,
             c.id_anticipo,
             false as selec,
            ''::text AS vendedor,
            ''::text as sucursal,
            dp.ref_direccionpersona as ref_direccion,
            ''::text as producto
FROM
   CREDITOS.TB_ANTICIPO  
  INNER JOIN creditos.tb_credito  c ON (TB_ANTICIPO.ID_ANTICIPO = c.ID_ANTICIPO)
  INNER JOIN COMMON.TB_MONEDA M ON (M.ID_MONEDA=TB_ANTICIPO.ID_MONEDA)
  INNER JOIN PLANILLAS.tb_direccionpersona DP ON (DP.idir_personal=TB_ANTICIPO.idir_personal AND DP.ID_PERSONA=TB_ANTICIPO.ID_PERSONA)
  INNER JOIN PLANILLAS.tb_persona ON (tb_persona.ID_PERSONA=DP.ID_PERSONA)
  WHERE TB_ANTICIPO.FACTURADO='N'

select *from PLANILLAS.tb_direccionpersona
select *from creditos.tb_credito

CREATE OR REPLACE VIEW CREDITOS.V_LISTAR_CUOTAS
AS
SELECT 
CC.NRO_LETRA,
CC.FEC_VENCIMIENTO,
CC.IMP_CUOTA,
0::NUMERIC AS IMP_NCRED,
0::NUMERIC AS IMP_DSCTO,
 creditos.getFuncCalMora(CC.ID_CUOTA,CC.ID_CREDITO,CC.id_sucursal_credito)::numeric AS IMP_MORA,
COALESCE((SELECT sum(M.IMP_MOVIMIENTO) FROM CAJA.TB_MOVIMIENTO M 
	WHERE CC.ID_CUOTA=M.ID_CUOTA 
	AND CC.ID_CREDITO=M.ID_CREDITO 
	AND CC.id_sucursal_credito=M.id_sucursal_credito  and m.id_estado<>7),0)  AS AMORTIZACION,
(CC.IMP_CUOTA+CC.IMP_MORA-COALESCE((SELECT sum(M.IMP_MOVIMIENTO) FROM CAJA.TB_MOVIMIENTO M 
	WHERE CC.ID_CUOTA=M.ID_CUOTA 
	AND CC.ID_CREDITO=M.ID_CREDITO 
	AND CC.id_sucursal_credito=M.id_sucursal_credito and M.ID_ESTADO<>7 ) ,0)) SALDO,
	TB_ESTADO.DES_ESTADO AS ESTADO,
	cc.id_credito, 
        cc.id_sucursal_credito,
        creditos.getFuncCalMora(CC.ID_CUOTA,CC.ID_CREDITO,CC.id_sucursal_credito),
        cc.id_cuota,
        CREDITOS.ISP_ESTADOS_CUOTA(cc.id_sucursal_credito,cc.id_cuota,cc.id_credito)
FROM CREDITOS.TB_CUOTA CC
INNER JOIN COMMON.TB_ESTADO ON (TB_ESTADO.ID_ESTADO=CC.ID_ESTADO)
order by substr(CC.NRO_LETRA,3,length(CC.NRO_LETRA))::NUMERIC asc



SELECT *FROM CREDITOS.V_LISTAR_CREDITO_CRONOGRAMA


CREATE OR REPLACE VIEW CREDITOS.V_LISTAR_CREDITO_CRONOGRAMA
AS
SELECT (D.ABRE_DOCUMENTO || '/' ||TB_FACTURACION.SERIE_FACTURACION || '-' || TB_FACTURACION.NUMDOC_FACTURACION) AS DOCUMENTO,
C.FEC_EMISION ,
( SELECT CC.fec_vencimiento
                   FROM CREDITOS.TB_CUOTA CC
                  WHERE CC.id_credito=C.id_credito  AND CC.id_sucursal_credito=C.id_sucursal_credito
                  ORDER BY substr(CC.NRO_LETRA,3,length(CC.NRO_LETRA))  DESC
                 LIMIT 1) AS fec_vencimiento_cred,
                 M.ABRE_MONEDA AS MONEDA,
                 ( SELECT SUM(CC.IMP_CUOTA)
                   FROM CREDITOS.TB_CUOTA CC
                  WHERE CC.id_credito=C.id_credito  AND CC.id_sucursal_credito=C.id_sucursal_credito
                  AND substr(CC.NRO_LETRA,3,length(CC.NRO_LETRA))::NUMERIC <>0 ) AS CREDITO,
                  COALESCE((SELECT SUM(M.IMP_MOVIMIENTO) FROM CREDITOS.TB_CUOTA CC 
                  INNER JOIN CAJA.TB_MOVIMIENTO M ON (CC.ID_CUOTA=M.ID_CUOTA AND CC.ID_CREDITO=M.ID_CREDITO AND CC.id_sucursal_credito=M.id_sucursal_credito)
                  WHERE C.ID_CREDITO=M.ID_CREDITO AND C.id_sucursal_credito=M.id_sucursal_credito  AND substr(CC.NRO_LETRA,3,length(CC.NRO_LETRA))::NUMERIC <>0),0) AS PAGOS_CRED,
                  ( COALESCE(( SELECT SUM(CC.IMP_CUOTA)
                   FROM CREDITOS.TB_CUOTA CC
                  WHERE CC.id_credito=C.id_credito  AND CC.id_sucursal_credito=C.id_sucursal_credito
                  AND substr(CC.NRO_LETRA,3,length(CC.NRO_LETRA))::NUMERIC <>0 ),0) -
                  COALESCE( (SELECT SUM(M.IMP_MOVIMIENTO) FROM CREDITOS.TB_CUOTA CC 
                  INNER JOIN CAJA.TB_MOVIMIENTO M ON (CC.ID_CUOTA=M.ID_CUOTA AND CC.ID_CREDITO=M.ID_CREDITO AND CC.id_sucursal_credito=M.id_sucursal_credito)
                  WHERE C.ID_CREDITO=M.ID_CREDITO AND C.id_sucursal_credito=M.id_sucursal_credito  AND substr(CC.NRO_LETRA,3,length(CC.NRO_LETRA))::NUMERIC <>0),0)) AS SALDO_CRED,
                   ( SELECT SUM(CC.IMP_CUOTA)
                   FROM CREDITOS.TB_CUOTA CC
                  WHERE CC.id_credito=C.id_credito  AND CC.id_sucursal_credito=C.id_sucursal_credito ) AS TOTA_FAC,
                  c.id_credito, 
                  c.id_sucursal_credito,
                  tb_persona.rs_persona AS CLIENTE,
                   (c.id_credito::text || ''::text) || c.id_sucursal_credito AS id_cabcredito, 
            (c.id_credito::text || ''::text) || c.id_sucursal_credito AS id_cabcredito_del,
            dp.id_persona as id_cliente,
            dp.idir_personal as id_dricliente,
            tb_persona.doc_persona,
            dp.dir_direccionpersona,
            c.id_anticipo,
	CC.NRO_LETRA,
	CC.FEC_VENCIMIENTO,
	CC.IMP_CUOTA,
	0::NUMERIC AS IMP_NCRED,
	0::NUMERIC AS IMP_DSCTO,
	 creditos.getFuncCalMora(CC.ID_CUOTA,CC.ID_CREDITO,CC.id_sucursal_credito)::numeric AS IMP_MORA,
	COALESCE((SELECT sum(M.IMP_MOVIMIENTO) FROM CAJA.TB_MOVIMIENTO M 
		WHERE CC.ID_CUOTA=M.ID_CUOTA 
		AND CC.ID_CREDITO=M.ID_CREDITO 
		AND CC.id_sucursal_credito=M.id_sucursal_credito  and m.id_estado<>7),0)  AS AMORTIZACION,
	(CC.IMP_CUOTA+CC.IMP_MORA-COALESCE((SELECT sum(M.IMP_MOVIMIENTO) FROM CAJA.TB_MOVIMIENTO M 
		WHERE CC.ID_CUOTA=M.ID_CUOTA 
		AND CC.ID_CREDITO=M.ID_CREDITO 
		AND CC.id_sucursal_credito=M.id_sucursal_credito and M.ID_ESTADO<>7 ) ,0)) SALDO,
		TB_ESTADO.DES_ESTADO AS ESTADO,
		creditos.getFuncCalMora(CC.ID_CUOTA,CC.ID_CREDITO,CC.id_sucursal_credito),
		cc.id_cuota,
		CREDITOS.ISP_ESTADOS_CUOTA(cc.id_sucursal_credito,cc.id_cuota,cc.id_credito),
		tb_hotel.nom_hotel as sucursal,
		vend.fullname_persona as vendedor
        
FROM 
ventas.tb_facturacion
  INNER JOIN creditos.tb_fac_credito ON (ventas.tb_facturacion.numdoc_facturacion = creditos.tb_fac_credito.numdoc_facturacion)
  AND (ventas.tb_facturacion.fecha_facturacion = creditos.tb_fac_credito.fecha_facturacion)
  AND (ventas.tb_facturacion.serie_facturacion = creditos.tb_fac_credito.serie_facturacion)
  AND (ventas.tb_facturacion.id_sucursal = creditos.tb_fac_credito.id_sucursal)
  AND (ventas.tb_facturacion.id_dir_cliente = creditos.tb_fac_credito.id_dir_cliente)
  AND (ventas.tb_facturacion.id_cliente = creditos.tb_fac_credito.id_cliente)
  AND (ventas.tb_facturacion.id_documento = creditos.tb_fac_credito.id_documento)
  INNER JOIN creditos.tb_credito  c ON (creditos.tb_fac_credito.id_credito = c.id_credito)
  AND (creditos.tb_fac_credito.id_sucursal_credito = c.id_sucursal_credito)
  INNER JOIN COMMON.TB_MONEDA M ON (M.ID_MONEDA=TB_FACTURACION.ID_MONEDA)
  INNER JOIN COMMON.TB_DOCUMENTO D ON (D.ID_DOCUMENTO=TB_FACTURACION.ID_DOCUMENTO)
  INNER JOIN PLANILLAS.tb_direccionpersona DP ON (DP.idir_personal=TB_FACTURACION.ID_DIR_CLIENTE AND DP.ID_PERSONA=tb_facturacion.ID_CLIENTE)
  INNER JOIN PLANILLAS.tb_persona ON (tb_persona.ID_PERSONA=DP.ID_PERSONA)  
inner join CREDITOS.TB_CUOTA CC on (c.id_sucursal_credito=cc.id_sucursal_credito and c.id_credito=cc.id_credito)
inner join hotel.tb_hotel on (tb_hotel.id_hotel=tb_facturacion.id_sucursal)
inner join planillas.tb_persona vend on(vend.id_persona=tb_facturacion.id_vendedor)
INNER JOIN COMMON.TB_ESTADO ON (TB_ESTADO.ID_ESTADO=CC.ID_ESTADO)
order by substr(CC.NRO_LETRA,3,length(CC.NRO_LETRA))::NUMERIC asc


select *from hotel.tb_hotel

select *from ventas.tb_facturacion

select * from creditos.V_LISTAR_CUOTAS  where id_credito='13'and id_sucursal_credito=1

select *from creditos.tb_credito

select *from creditos.tb_cuota where id_credito='25' and id_sucursal_credito=1

select *from creditos.V_LISTAR_CUOTAS where id_credito='25' and id_sucursal_credito=1



create or replace view creditos.v_listar_imp_cal_mora
as
select cc.id_credito, 
        cc.id_sucursal_credito,
        cc.id_cuota, cc.IMP_CUOTA,
cc.FEC_VENCIMIENTO,
        (CC.IMP_CUOTA+CC.IMP_MORA-COALESCE((SELECT sum(M.IMP_MOVIMIENTO) FROM CAJA.TB_MOVIMIENTO M 
	WHERE CC.ID_CUOTA=M.ID_CUOTA 
	AND CC.ID_CREDITO=M.ID_CREDITO 
	AND CC.id_sucursal_credito=M.id_sucursal_credito ) ,0)) SALDO,
	substr(CC.NRO_LETRA,3,length(CC.NRO_LETRA))::integer as nro_cuota
FROM CREDITOS.TB_CUOTA CC
INNER JOIN COMMON.TB_ESTADO ON (TB_ESTADO.ID_ESTADO=CC.ID_ESTADO)
order by substr(CC.NRO_LETRA,3,length(CC.NRO_LETRA))::NUMERIC asc

create or replace  view caja.v_listar_doc_caja
as
select 
	MM.ID_MOVIMIENTO,
	MM.ID_SUCURSAL_MOV,
	SUCURSAL.NOM_HOTEL AS PUNTO_VENTA,
	(MD.ABRE_DOCUMENTO || '/' || MM.SERIE || '-' || MM.NRO_COMPROBANTE) AS DOC_MOV,
	(D.ABRE_DOCUMENTO || '/' ||TB_FACTURACION.SERIE_FACTURACION || '-' || TB_FACTURACION.NUMDOC_FACTURACION) AS DOC_FAC,
	tb_persona.rs_persona AS CLIENTE,
	TB_PERSONA.DOC_PERSONA,
	(DP.dir_direccionpersona || ' ' || TB_UBIGEO.nom_depa || ' ' || TB_UBIGEO.nom_prov || ' ' || nom_dist) AS DIR_CLI,
	MM.FECHA_MOV,
	substr(CC.NRO_LETRA,3,length(CC.NRO_LETRA)) AS NRO_CUOTA,
	CC.NRO_LETRA,
	CC.IMP_CUOTA,
	MM.IMP_MOVIMIENTO AS AMOTIZAC,
	MM.IMPORTE_MORA AS IMP_MORA,
	MM.IMP_RECIBIDO,
	MM.IMP_VUELTO,
	( SELECT (CCC.IMP_CUOTA+CCC.IMP_MORA) -COALESCE ((( SELECT sum(MC.IMP_MOVIMIENTO) AS sum
                           FROM CAJA.TB_MOVIMIENTO MC      WHERE  CCC.ID_CUOTA = MC.ID_CUOTA  
                           AND CCC.ID_CREDITO=MC.ID_CREDITO AND CCC.id_sucursal_credito=MC.id_sucursal_credito and mc.id_estado<>7)),0)
                   FROM CREDITOS.TB_CUOTA CCC
                  WHERE CCC.ID_CUOTA = CC.ID_CUOTA  
                           AND CCC.ID_CREDITO=CC.ID_CREDITO ) AS total, 
	fu_numero_letras(MM.IMP_MOVIMIENTO) AS IMP_LETRAS,
	M_MOV.ABRE_MONEDA AS MONEDA_MOV,
	c.id_credito,
	c.id_sucursal_credito,
	cc.id_cuota,
	mm.serie, 
	mm.fecha::text as fecha, 
	mm.nro_comprobante, 
	mm.id_tranzaccion_mov, 
	mm.id_documento_mov,
	tb_estado.des_estado as estado_mov,
	vendedor.fullname_persona as vendedor
FROM
  ventas.tb_facturacion
  INNER JOIN creditos.tb_fac_credito ON (ventas.tb_facturacion.numdoc_facturacion = creditos.tb_fac_credito.numdoc_facturacion)
  AND (ventas.tb_facturacion.fecha_facturacion = creditos.tb_fac_credito.fecha_facturacion)
  AND (ventas.tb_facturacion.serie_facturacion = creditos.tb_fac_credito.serie_facturacion)
  AND (ventas.tb_facturacion.id_sucursal = creditos.tb_fac_credito.id_sucursal)
  AND (ventas.tb_facturacion.id_dir_cliente = creditos.tb_fac_credito.id_dir_cliente)
  AND (ventas.tb_facturacion.id_cliente = creditos.tb_fac_credito.id_cliente)
  AND (ventas.tb_facturacion.id_documento = creditos.tb_fac_credito.id_documento)
  INNER JOIN creditos.tb_credito  c ON (creditos.tb_fac_credito.id_credito = c.id_credito)
  AND (creditos.tb_fac_credito.id_sucursal_credito = c.id_sucursal_credito)
  INNER JOIN COMMON.TB_MONEDA M ON (M.ID_MONEDA=TB_FACTURACION.ID_MONEDA)
  INNER JOIN COMMON.TB_DOCUMENTO D ON (D.ID_DOCUMENTO=TB_FACTURACION.ID_DOCUMENTO)
  INNER JOIN PLANILLAS.tb_direccionpersona DP ON (DP.idir_personal=TB_FACTURACION.ID_DIR_CLIENTE AND DP.ID_PERSONA=tb_facturacion.ID_CLIENTE)
  INNER JOIN PLANILLAS.tb_persona ON (tb_persona.ID_PERSONA=DP.ID_PERSONA)
  INNER JOIN COMMON.TB_UBIGEO ON(TB_UBIGEO.UBIGEO=DP.UBIGEO)
  INNER JOIN CREDITOS.TB_CUOTA CC ON (C.ID_CREDITO=CC.ID_CREDITO AND C.id_sucursal_credito=CC.id_sucursal_credito) 
  INNER JOIN CAJA.TB_MOVIMIENTO MM ON(CC.ID_CUOTA = MM.ID_CUOTA  AND CC.ID_CREDITO=MM.ID_CREDITO AND CC.id_sucursal_credito=MM.id_sucursal_credito)
  INNER JOIN COMMON.TB_DOCUMENTO MD ON(MD.ID_DOCUMENTO=MM.ID_DOCUMENTO_MOV)
  INNER JOIN COMMON.TB_MONEDA M_MOV ON (M_MOV.ID_MONEDA=MM.ID_MONEDA) 
  INNER JOIN HOTEL.TB_HOTEL SUCURSAL ON (SUCURSAL.ID_HOTEL=MM.ID_SUCURSAL_MOV)
  INNER JOIN COMMON.TB_ESTADO ON (MM.ID_ESTADO=TB_ESTADO.ID_ESTADO)
  inner join planillas.tb_persona vendedor on (vendedor.id_persona=tb_facturacion.id_vendedor)

  select *from ventas.tb_facturacion

select *from COMMON.TB_ESTADO
select *from planillas.tb_persona

create or replace view almacen.v_listar_cab_inventario
as
select 
(d.abre_documento || '/'|| inv.serie || '-' || inv.nro_inventario) as documento,
alm.des_almacen as almacen,
inv.fecha,
tinv.nombres as tipo_inventario,
tb_estado.des_estado as estado,
inv.id_almacen, 
inv.id_documento, 
inv.serie, 
inv.nro_inventario

 from almacen.tb_inventario inv
inner join common.tb_documento  d on (d.id_documento=inv.id_documento)
inner join almacen.tb_tipoinventario tinv on (tinv.id_tipoinv=inv.id_tipoinv)
inner join almacen.tb_almacen alm on (alm.id_almacen=inv.id_almacen)
inner join common.tb_estado on (tb_estado.id_estado=inv.id_estado)








create or replace view almacen.v_listar_det_inventario
as
SELECT 
  almacen.tb_precio.id_producto,
  almacen.tb_producto.descripcion_larga as descripcion,
  common.tb_unidad.abreviatura as unimed,
  almacen.tb_det_inventario.cantidad,
  almacen.tb_det_inventario.costo,
  almacen.tb_det_inventario.total
FROM
  almacen.tb_det_inventario
  INNER JOIN almacen.tb_precio ON (almacen.tb_det_inventario.id_precios = almacen.tb_precio.id_precios)
  AND (almacen.tb_det_inventario.id_unidad = almacen.tb_precio.id_unidad)
  AND (almacen.tb_det_inventario.id_producto = almacen.tb_precio.id_producto)
  AND (almacen.tb_det_inventario.id_lista = almacen.tb_precio.id_lista)
  INNER JOIN almacen.tb_producto ON (almacen.tb_precio.id_producto = almacen.tb_producto.id_producto)
  INNER JOIN common.tb_unidad ON (almacen.tb_precio.id_unidad = common.tb_unidad.id_unidad)
  



create or replace view almacen.v_listar_productos_general
as
SELECT 
  almacen.tb_producto.id_producto,
  almacen.tb_producto.descripcion_larga as producto,
  almacen.tb_grupo.nombre as grupo,
  almacen.tb_familia.nombre as familia,
  almacen.tb_lista_precio.nom_lista as lista,
  common.tb_unidad.abreviatura as unimed,
  almacen.tb_precio.costo_almacen,
  almacen.tb_precio.precio1,
  almacen.tb_precio.precio2,
  almacen.tb_precio.precio3,
  almacen.tb_precio.precio4,
  almacen.tb_precio.precio5,
  almacen.tb_precio.val_unidad,
  almacen.tb_producto.inc_serie,
  almacen.tb_producto.controla_stock,
  almacen.tb_precio.predeterminado,
  almacen.tb_precio.peso
FROM
  almacen.tb_producto
  INNER JOIN almacen.tb_precio ON (almacen.tb_producto.id_producto = almacen.tb_precio.id_producto)
  INNER JOIN common.tb_unidad ON (almacen.tb_precio.id_unidad = common.tb_unidad.id_unidad)
  INNER JOIN almacen.tb_familia ON (almacen.tb_producto.idfamilia = almacen.tb_familia.idfamilia)
  INNER JOIN almacen.tb_grupo ON (almacen.tb_familia.idgrupo = almacen.tb_grupo.idgrupo)
  INNER JOIN almacen.tb_lista_precio ON (almacen.tb_precio.id_lista = almacen.tb_lista_precio.id_lista)
  


create or replace view almacen.v_listar_series_prod
as
select idserie,nro_chasis,nro_motor from almacen.serie_producto

select *from ventas.v_listar_cabecera_facturacion_ventas

create or replace view ventas.v_listar_cabecera_facturacion_ventas
as
select 
CAST(f.fecha_facturacion AS DATE)::text AS fecha_facturacion,
f.date_act,
( td.abre_documento || '/' ||  f.serie_facturacion || '-' || f.numdoc_facturacion) as comprobante,
m.abre_moneda as moneda,
 f.imp_total+COALESCE((SELECT sum(tb_cuota.imp_cuota)
FROM
  creditos.tb_fac_credito
  INNER JOIN creditos.tb_credito ON (creditos.tb_fac_credito.id_credito = creditos.tb_credito.id_credito)
  AND (creditos.tb_fac_credito.id_sucursal_credito = creditos.tb_credito.id_sucursal_credito)
  INNER JOIN creditos.tb_cuota ON (creditos.tb_credito.id_credito = creditos.tb_cuota.id_credito)
  AND (creditos.tb_credito.id_sucursal_credito = creditos.tb_cuota.id_sucursal_credito) 
   where (creditos.tb_fac_credito.numdoc_facturacion = f.numdoc_facturacion)
  AND (creditos.tb_fac_credito.fecha_facturacion = f.fecha_facturacion)
  AND (creditos.tb_fac_credito.serie_facturacion = f.serie_facturacion)
  AND (creditos.tb_fac_credito.id_sucursal = f.id_sucursal)
  AND (creditos.tb_fac_credito.id_dir_cliente = f.id_dir_cliente)
  AND (creditos.tb_fac_credito.id_cliente = f.id_cliente)
  AND (creditos.tb_fac_credito.id_documento = f.id_documento)),0) as total,
  tc.imp_venta as tipcambio,
  fp.des_formapago as forma_pago,
  (select des_formapago from common.tb_formapago  where   f.id_condicion_venta=id_formapago) condi_venta,
  f.id_dir_cliente,
  f.id_cliente,
 F. numdoc_facturacion, 
 F.serie_facturacion, 
 F.id_sucursal,  
 F.id_documento,
 TB_ESTADO.des_estado as estado,
 cliente.rs_persona as cliente,
 tdp.dir_direccionpersona as dir_cliente,
 cliente.doc_persona as doc_cliente,
 vendedor.fullname_persona as vendedor,
 f.id_vendedor,
 f.id_operacion,
 f.id_tipocambio,
 f.id_igv,
 f.id_formapago,
 f.id_moneda,
 f.id_condicion_venta
from ventas.tb_facturacion f
inner join planillas.tb_direccionpersona tdp on (tdp.id_persona=f.id_cliente and tdp.idir_personal=f.id_dir_cliente)
inner join planillas.tb_persona cliente on (cliente.id_persona=tdp.id_persona)
inner join planillas.tb_persona vendedor on (vendedor.id_persona=f.id_vendedor)
inner join common.tb_documento td on(td.id_documento=f.id_documento)
inner join common.tb_moneda m on (m.id_moneda=f.id_moneda)
inner join common.tb_tipocambio tc on (tc.id_tipocambio=f.id_tipocambio)
inner join common.tb_formapago fp on  (fp.id_formapago=f.id_formapago)
INNER JOIN COMMON.TB_ESTADO ON (TB_ESTADO.ID_ESTADO=F.ID_ESTADO)


select *from planillas.tb_direccionpersona
select *from ventas.tb_facturacion
select *from planillas.tb_persona

SELECT *FROM CREDITOS.TB_ANTICIPO

select *from ventas.V_LISTAR_DET_FACTURACION

CREATE OR REPLACE VIEW VENTAS.V_LISTAR_DET_FACTURACION
AS
SELECT 
  almacen.tb_producto.id_producto,
  almacen.tb_producto.descripcion_larga,
  df.cantidad,
  common.tb_unidad.abreviatura,
  df.imp_total,
  df.imp_precio,
  df.porcent_dscto,
  df.numdoc_facturacion,
  CAST(df.fecha_facturacion AS DATE)::text AS fecha_facturacion,
  df.serie_facturacion,
  df.id_dir_cliente,
  df.id_cliente,
  df.id_documento,
  df.id_sucursal,
  df.id_almacen,
  tb_unidad.abreviatura as unimed,
  df.id_unidad,
  df.id_precios,
  df.id_lista,
  df.id_lote,
  df.lista,
  df.valor_venta,
  df.valor_igv,
  (CASE WHEN df.VALOR_VENTA>0 THEN ROUND(df.VALOR_IGV/df.VALOR_VENTA,2) ELSE 0 END) AS PORCENT_IGV,
  df.imp_bruto,
  tb_producto.inc_serie,
  tb_producto.controla_stock,
  tb_precio.val_unidad,
  tb_precio.val_minimo
FROM
  almacen.tb_producto
  INNER JOIN almacen.tb_precio ON (almacen.tb_producto.id_producto = almacen.tb_precio.id_producto)
  INNER JOIN common.tb_unidad ON (almacen.tb_precio.id_unidad = common.tb_unidad.id_unidad)
  INNER JOIN ventas.tb_det_facturacion df ON (almacen.tb_precio.id_precios = df.id_precios)
  AND (almacen.tb_precio.id_unidad = df.id_unidad)
  AND (almacen.tb_precio.id_producto = df.id_producto)
  AND (almacen.tb_precio.id_lista = df.id_lista)
  
select *from common.tb_igv
select *from almacen.tb_precio

select VALOR_VENTA,VALOR_IGV,CASE WHEN VALOR_VENTA>0 THEN ROUND(VALOR_IGV/VALOR_VENTA,2) ELSE 0 END from ventas.tb_det_facturacion
select *from almacen.tb_producto

SELECT ROUND(4,2)
create or replace view creditos.v_listcab_anticipo
as
SELECT 
  creditos.tb_anticipo.id_anticipo,
  creditos.tb_anticipo.fec_registro as fecha,
  planillas.tb_persona.id_persona as id_cliente,
  planillas.tb_direccionpersona.idir_personal as id_dircli,
  planillas.tb_persona.nom_persona as cliente,
  planillas.tb_direccionpersona.dir_direccionpersona as dir_cliente,
  planillas.tb_persona.doc_persona as doc_cliente,
  almacen.tb_producto.id_producto,
  almacen.tb_producto.descripcion_larga as producto
FROM
  creditos.tb_anticipo
  INNER JOIN creditos.tb_det_anticipo ON (creditos.tb_anticipo.id_anticipo = creditos.tb_det_anticipo.id_anticipo)
  INNER JOIN planillas.tb_direccionpersona ON (creditos.tb_anticipo.idir_personal = planillas.tb_direccionpersona.idir_personal)
  AND (creditos.tb_anticipo.id_persona = planillas.tb_direccionpersona.id_persona)
  INNER JOIN planillas.tb_persona ON (planillas.tb_direccionpersona.id_persona = planillas.tb_persona.id_persona)
  INNER JOIN almacen.tb_precio ON (creditos.tb_det_anticipo.id_precios = almacen.tb_precio.id_precios)
  AND (creditos.tb_det_anticipo.id_unidad = almacen.tb_precio.id_unidad)
  AND (creditos.tb_det_anticipo.id_producto = almacen.tb_precio.id_producto)
  AND (creditos.tb_det_anticipo.id_lista = almacen.tb_precio.id_lista)
  INNER JOIN almacen.tb_producto ON (almacen.tb_precio.id_producto = almacen.tb_producto.id_producto)


SELECT *FROM COMMON.TB_ESTADO
select *from common.tb_formapago


select *from common.tb_tipocambio
select *from creditos.tb_cuota
select *from common.tb_moneda
select * from ventas.tb_facturacion
select *from common.tb_documento
select *from common.tb_estado
select *from almacen.tb_tipoinventario ;
select *from almacen.tb_almacen 
ALTER TABLE ALMACEN.TB_INVENTARIO
	ADD FOREIGN KEY (ID_ALMACEN) REFERENCES ALMACEN.TB_ALMACEN (ID_ALMACEN);



ALTER TABLE ALMACEN.TB_INVENTARIO
	ADD FOREIGN KEY (ID_DOCUMENTO) REFERENCES COMMON.TB_DOCUMENTO (ID_DOCUMENTO);



ALTER TABLE ALMACEN.TB_INVENTARIO
	ADD FOREIGN KEY (ID_TIPOINV) REFERENCES ALMACEN.TB_TIPOINVENTARIO (ID_TIPOINV);

  select *from hotel.tb_hotel
  
ALTER TABLE CAJA.TB_MOVIMIENTO
	ADD FOREIGN KEY (ID_MONEDA) REFERENCES COMMON.TB_MONEDA (ID_MONEDA);

SELECT *FROM COMMON.TB_MONEDA
SELECT *FROM PLANILLAS.TB_PERSONA
SELECT ID_MONEDA CAJA.TB_MOVIMIENTO
SELECT *FROM COMMON.TB_DOCUMENTO

ALTER TABLE CAJA.TB_MOVIMIENTO ADD COLUMN ID_MONEDA INTEGER DEFAULT 1;



ALTER TABLE CAJA.TB_MOVIMIENTO
	ADD FOREIGN KEY (ID_DOCUMENTO_MOV) REFERENCES COMMON.TB_DOCUMENTO (ID_DOCUMENTO);


  SELECT *FROM CAJA.TB_MOVIMIENTO
SELECT *FROM CREDITOS.TB_CUOTA
select *from caja.tb_movimiento

select  CAST( now() AS DATE)-CAST(FEC_VENCIMIENTO AS DATE)   from creditos.tb_cuota
select generaIntereses(447.50,convertirTemToTead(5),15);

select (447.50*(0.05::numeric/30))*30
create or replace function getSimulador()
returns record
declare
begin
	for i
end;$$
language 'plpgsql';

create or replace function convertirTeaToTeam( tasa numeric)
returns numeric as $$
declare
	 temSalida numeric;
	 tasaAntesElevar numeric;
	 tasaDespuesElevar numeric;
	 indice numeric;
	 NUM numeric;
	 DEN numeric;
begin
	NUM=1;
        DEN=12;        
        tasaAntesElevar = (1+(tasa/100));
        indice=NUM/DEN;
        tasaDespuesElevar = power(tasaAntesElevar,indice);
        temSalida=(tasaDespuesElevar-1)*100; --// Volviendo la tasa a %
        return temSalida; 
	
end;$$
language 'plpgsql';





create or replace function getSimulador()
returns record
declare
begin
	for i
end;$$
language 'plpgsql';

create or replace function convertirTemToTead( tasa numeric)
returns numeric as $$
declare
	 temSalida numeric;
	 tasaAntesElevar numeric;
	 tasaDespuesElevar numeric;
	 indice numeric;
	 NUM numeric;
	 DEN numeric;
begin
	NUM=1;
        DEN=30;        
        tasaAntesElevar = (1+(tasa/100));
        indice=NUM/DEN;
        tasaDespuesElevar = power(tasaAntesElevar,indice);
        temSalida=(tasaDespuesElevar-1)*100; --// Volviendo la tasa a %
        return temSalida; 
	
end;$$
language 'plpgsql';



create or replace function convertirTemToTea( tasa numeric)
returns numeric as $$
declare
	 teaSalida numeric;
	 tasaAntesElevar numeric;
	 tasaDespuesElevar numeric;
	 indice numeric;
	 NUM numeric;
	 DEN numeric;
begin

        tasaAntesElevar = (1+(tasa/100));
        DEN=12;
        indice=DEN;
        tasaDespuesElevar = power(tasaAntesElevar,indice);
        teaSalida=(tasaDespuesElevar-1)*100; --  // Volviendo la tasa a %
        return teaSalida;
	
end;$$
language 'plpgsql';

f=cit
select (447.50*(0.05::numeric/30))*30

select 477.50*(power(0.05,1::numeric/30))

select 2500*power(1+(0.05::numeric/100),30);

select 477.50*(power(1+(0.05::numeric/30)),1)
select convertirTemToTea(0.194478)

create table simulado(
	plaza numeric,
	fecha timestamp,
	capital numeric,
	amorizacion numeric,
	interes numeric,
	cuota numeric
)
select generaIntereses(477.30,5,1)

select power(1.05,1::numeric/30::numeric)-1 --calculando el interes diario

select power((1+i),n);
select 477.30*(power((1+0.00162766201183307169),1))-477.30;


select ((power((1+0.05),(1::numeric/30)) -1)*447.30)*90
TE = (power((1.18), (1/12)))-1 = 1.388%
TE = ((1,18) ^(1/12))-1 = 1.388%
select power(1.18,1/12)

 select (power((1.18), (1::numeric/365::numeric)))-1;

select 447.30*(power(1+0.05,1::numeric/30)-1 )

 select ((power((1+0.194478),(1::numeric/30)) -1)*447.30)*2


 select power(1+(1+power(i,1::numeric/30)),n)
 select power(1+((1+power(i,1::numeric/30)-1)),n)

 select power(1+((1+power(0.5,1::numeric/30)-1)),1)
select power(2,4)
select 1::numeric/12::numeric
SELECT * FROM COMMON.TB_ESTADO
SELECT *FROM CREDITOS.TB_CREDITO
SELECT *FROM CREDITOS.TB_CUOTA
ALTER TABLE VENTAS.TB_FACTURACION ADD COLUMN ID_CONDICION_VENTA INTEGER;

SELECT substr(NRO_LETRA,3,length(NRO_LETRA)) FROM CREDITOS.TB_CUOTA

ALTER TABLE VENTAS.TB_FACTURACION
	ADD FOREIGN KEY (ID_CONDICION_VENTA) REFERENCES COMMON.TB_FORMAPAGO (ID_FORMAPAGO);
SELECT *FROM 	common.tb_formapago
  SELECT *FROM COMMON.TB_UBIGEO
select *from ventas.tb_facturacion
select *from common.tb_documento 
select *from planillas.tb_persona
select *from planillas.tb_direccionpersona
select *from hotel.tb_hotel
select *from common.tb_documento
select *from common.tb_estado

select * from compras.compra
select *from public.dirproveedor 
select *from divisa

alter table compras.compra add column idtipocambio integer default 1;
select * from archivo.v_listar_cab_mov_exportar   where date_part('year',FechaEmi)='2012' and date_part('month',FechaEmi)='06' 
select trunc(8.233,2)
select *from ventas.facturacion
select * from archivo.v_listar_cab_mov_exportar where BrutoNac is null








INNER JOIN COMMON.TB_UNIDAD ON (TB_UNIDAD.ID_UNIDAD=TB_SALDO.ID_UNIDAD)
WHERE TB_SALDO.ANIO=date_part('year',now()) AND  TB_SALDO.MES=date_part('month',now())::INTEGER
ORDER BY TB_PRODUCTO.ID_PRODUCTO::NUMERIC


ALTER TABLE ALMACEN.TB_SALDO ADD COLUMN ID_ESTADO INTEGER DEFAULT 1;

SELECT * FROM ALMACEN.TB_SALDO
SELECT *FROM ALMACEN.TB_PRODUCTO
select *from caja.tb_caja_banco
select *from caja.v_listar_tipcaja
ALTER TABLE ALMACEN.tb_ALMACEN ADD COLUMN is_principal integer DEFAULT 0;
/*
SELECT *FROM PLANILLAS.TB_PERSONA

select * from almacen.v_listageneralprecios  where id_producto='5'
select *from common.tb_ubigeo
select *from hotel.tb_hotel
select *from almacen.tb_almacen
select *from common.tb_moneda
SELECT *FROM ALMACEN.TB_PRECIO
select *from almacen.tb_producto
select *from almacen.tb_familia
SELECT *FROM COMMON.TB_ESTADO
SELECT *FROM COMMON.TB_UNIDAD
SELECT *FROM ALMACEN.TB_LISTA_PRECIO
select *from almacen.tb_grupo
  select * from   hotel.tb_tarifa_hotel t
  */

  select *from almacen.v_listar_almacen

  select * from creditos.V_LISTAR_CUOTAS  where id_credito='13'and id_sucursal_credito=1